// Type: System.Web.Security.FormsAuthentication
// Assembly: System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// Assembly location: C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.dll

using System;
using System.Collections.Specialized;
using System.Runtime;
using System.Web;
using System.Web.Configuration;

namespace System.Web.Security
{
    public sealed class FormsAuthentication
    {
        [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
        public FormsAuthentication();

        public static bool IsEnabled { get; }
        public static string FormsCookieName { get; }
        public static string FormsCookiePath { get; }
        public static bool RequireSSL { get; }
        public static TimeSpan Timeout { get; }
        public static bool SlidingExpiration { get; }
        public static HttpCookieMode CookieMode { get; }
        public static string CookieDomain { get; }
        public static bool EnableCrossAppRedirects { get; }
        public static TicketCompatibilityMode TicketCompatibilityMode { get; }
        public static bool CookiesSupported { get; }
        public static string LoginUrl { get; }
        public static string DefaultUrl { get; }

        public static string HashPasswordForStoringInConfigFile(string password, string passwordFormat);
        public static void Initialize();
        public static FormsAuthenticationTicket Decrypt(string encryptedTicket);

        [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
        public static string Encrypt(FormsAuthenticationTicket ticket);

        public static bool Authenticate(string name, string password);
        public static void SignOut();
        public static void SetAuthCookie(string userName, bool createPersistentCookie);
        public static void SetAuthCookie(string userName, bool createPersistentCookie, string strCookiePath);
        public static HttpCookie GetAuthCookie(string userName, bool createPersistentCookie);

        [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
        public static HttpCookie GetAuthCookie(string userName, bool createPersistentCookie, string strCookiePath);

        public static string GetRedirectUrl(string userName, bool createPersistentCookie);
        public static void RedirectFromLoginPage(string userName, bool createPersistentCookie);
        public static void RedirectFromLoginPage(string userName, bool createPersistentCookie, string strCookiePath);
        public static FormsAuthenticationTicket RenewTicketIfOld(FormsAuthenticationTicket tOld);
        public static void EnableFormsAuthentication(NameValueCollection configurationData);

        [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
        public static void RedirectToLoginPage();

        public static void RedirectToLoginPage(string extraQueryString);
    }
}
